package com.ghsc.yigou.live.utils

import android.content.Context
import com.alibaba.sdk.android.oss.ClientConfiguration
import com.alibaba.sdk.android.oss.OSS
import com.alibaba.sdk.android.oss.OSSClient
import com.alibaba.sdk.android.oss.common.OSSLog
import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider
import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider

/**
 * 项目：JingShortVideo
 * 包名：com.cn.jingshortvideo.utils
 * 类名：OssUpUtils
 * 创建时间：2022/9/14 14:50
 * 创建人 @author： xiaolin
 * 描述 ：Todo...
 */
object OssUpUtils {
    /**
     * 初始化阿里云oss
     * context 上下文
     * endpoint 端点 一般找你们后端拿
     * AccessKeyId 存取键 一般找你们后端拿
     * SecretKeyId 密钥 一般找你们后端拿
     * SecurityToken 安全符记 一般找你们后端拿
     * bucketName 桶名 一般找你们后端拿
     * objectName 文件名 本地要上传文件路径
     * uploadFilePath 文件路径 要方阿里服务的位置路径
     *
     */
    fun ossConfig(context: Context, endpoint:String, AccessKeyId:String, SecretKeyId:String, SecurityToken:String) : OSS {
        val endpoint = endpoint
        val conf = ClientConfiguration()
        conf.connectionTimeout = 15 * 1000 // 连接超时，默认15秒
        conf.socketTimeout = 15 * 1000 // socket超时，默认15秒
        conf.maxConcurrentRequest = 5 // 最大并发请求数，默认5个
        conf.maxErrorRetry = 2 // 失败后最大重试次数，默认2次
        OSSLog.enableLog() //这个开启会支持写入手机sd卡中的一份日志文件位置在SDCard_path\OSSLog\logs.csv
        val credentialProvider: OSSCredentialProvider = OSSStsTokenCredentialProvider(
            AccessKeyId,
            SecretKeyId,
            SecurityToken
        )
        val oss: OSS = OSSClient(context, endpoint, credentialProvider, conf)
        return  oss
    }
}